#include "functiongenerator.h"

//#define WANT_TO_GENERATE_FUNCTION_NUMBER    10
//
//#define FUNCTION_TOTAL_NUMBER           4
//#define CODE_LEVEL_HIGH                 3

int main()
{
    CFunctionGenerator o;
    o.gen_string2intAry("get_intAry", "flag", 32, 3, "int_ary_var", 12);
    o.log_print();
    return 0;
}

/*
using std::list;
using std::string;

int* func_ids = nullptr;
int func_num = 0;



list<string*> lst_function_code;
list<string*> lst_reFunction_code;
int* g_result_buffer = nullptr;
int g_result_buffer_size = 0;
*/


//void mul() {
//    int num = get_random_int(1, 5);
//    for (int i = 0; i < g_result_buffer_size; i++)
//    {
//        g_result_buffer[i] *= num;
//    }
//
//    char code_format[] =
//"\
//    for (int i = 0; i < %d; i++)\r\n\
//    {\r\n\
//        g_result_buffer[i] *= %d;\r\n\
//    }\r\n\
//";
//    char code_buf[1024];
//    sprintf(code_buf, code_format, g_result_buffer_size, num);
//    string* code = new string(code_buf);
//    lst_function_code.push_back(code);
//
//    char re_code_format[] = "\
//    for (int i = 0; i < %d; i++)\r\n\
//    {\r\n\
//        g_result_buffer[i] /= %d;\r\n\
//    }\r\n\
//";
//    char re_code_buf[1024];
//    sprintf(re_code_buf, re_code_format, g_result_buffer_size, num);
//    lst_reFunction_code.push_front(new string(re_code_buf));
//}

//void swap()
//{
//    for (int i = 0; i < g_result_buffer_size / 2; ++i) {
//        int tmp = g_result_buffer[i];
//        g_result_buffer[i] = g_result_buffer[g_result_buffer_size - 1 - i];
//        g_result_buffer[g_result_buffer_size - 1 - i] = tmp;
//    }
//    char code_format[] ="\
//    for (int i = 0; i < %d / 2; ++i) {\r\n\
//        int tmp = g_result_buffer[i];\r\n\
//        g_result_buffer[i] = g_result_buffer[%d - 1 - i];\r\n\
//        g_result_buffer[%d - 1 - i] = tmp;\r\n\
//    }\r\n\
//";
//    char code_buf[1024];
//    sprintf(code_buf, code_format, g_result_buffer_size, g_result_buffer_size, g_result_buffer_size);
//    string* code = new string(code_buf);
//    lst_function_code.push_back(code);
//    lst_reFunction_code.push_front(code);
//}



//int main() 
//{
//    srand(time(0));
//    int func_number = WANT_TO_GENERATE_FUNCTION_NUMBER;
//    // function id array
//    func_ids = new int[func_number];
//    
//    char data[] = "ba9b7aeba3ad406c177308b887a1c252";
//    g_result_buffer_size = strlen(data);
//    // saved result (int array)
//    g_result_buffer = new int[g_result_buffer_size];
//    // init the result array
//    for (size_t i = 0; i < g_result_buffer_size; i++)
//    {
//        g_result_buffer[i] = (int)(data[i]);
//    }
//
//    // get random function id
//    get_random_intAry(func_ids, func_number, 1, 4);
//    //get_random_intAry(func_ids, func_number, 1, FUNCTION_TOTAL_NUMBER);
//    for (size_t i = 0; i < func_number; i++)
//    {
//        switch (func_ids[i])
//        {
//        case 1:
//            add();
//            break;
//        case 2:
//            sub();
//            break;
//        case 3:
//            mul();
//            break;
//        case 4:
//            swap();
//            break;
//        default:
//            printf("Warning: an unexpected function id was generated.\r\n\r\n");
//        }
//    }
//    print_result();
//    print_function();
//    print_refunction();
//    //print_result();
//    return 0;
//}


